package com.settlement.system.service;

import com.settlement.system.common.exception.ServiceException;
import com.settlement.system.model.entity.common.CommonPlugIn;
import com.settlement.system.model.entity.common.TblCostAllocationDetail;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Map;

/**
 * RR-费用分摊表 服务类
 * @author xiaochuan
 * @since 2023-01-06
 */

public interface ITblCostAllocationDetailService extends IBaseService {

    List<TblCostAllocationDetail> selectByParams(TblCostAllocationDetail tblMarketToolBillDetail) throws ServiceException;

    TblCostAllocationDetail getFoot(Map<String, Object> params) throws ServiceException;

    List<TblCostAllocationDetail> selectStatusBySummaryId(Map<String, Object> params) throws ServiceException;

    String selectWeightIdBySummaryId(Map<String, Object> params) throws ServiceException;

    String selectWeightIdById(Map<String, Object> params) throws ServiceException;

    TblCostAllocationDetail getNcBrandByBrandUnitNo(String brandUnitNo) throws ServiceException;

    TblCostAllocationDetail getNcBrandByBrandName(String brandName) throws ServiceException;

    TblCostAllocationDetail getNcBrandByBrandNo(String brandNo) throws ServiceException;

    String getNcBrandNameByNcBrandNo(String ncBrandNo) throws ServiceException;

    TblCostAllocationDetail getNcBrandByBrandUnitNameShort(String brandUnitNameShort) throws ServiceException;

    String checkBeforeDelete(Map<String, Object> params) throws ServiceException;

    String checkBeforePushToFas(Map<String, Object> params) throws ServiceException;

    @Transactional(rollbackFor = Exception.class)
    String checkBeforeDeleteFromFas(Map<String, Object> params) throws ServiceException;

    List<String> selectPushFasStatus(Map<String, Object> params) throws ServiceException;

    List<String> selectAccountStatus(Map<String, Object> params) throws ServiceException;

    String produceNc(Map<String, Object> params) throws ServiceException;

    List<CommonPlugIn> selectExistAccountPeriod() throws ServiceException;
}

